﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO_MechSys;
using DAL_MechSys;
using System.IO;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace BLL_MechSys
{
    public class BLLPropaganda
    {
        DALPropaganda dalPropaganda = new DALPropaganda();

        public void Inserir(DTOPropaganda dtoPropaganda)
        {
            dtoPropaganda.ImagemArray = imageToByteArray(dtoPropaganda.Imagem);
            dalPropaganda.Inserir(dtoPropaganda);
        }

        public void Atualizar(DTOPropaganda dtoPropaganda)
        {
            dtoPropaganda.ImagemArray = imageToByteArray(dtoPropaganda.Imagem);
            dalPropaganda.Atualizar(dtoPropaganda);
        }

        public void Excluir(int PropagandaID)
        {
            dalPropaganda.Excluir(PropagandaID);
        }

        public void AlterarIndice(int PropagandaID1, int PropagandaID2)
        {
            dalPropaganda.AlterarIndice(PropagandaID1, PropagandaID2);
        }

        public List<DTOPropaganda> BuscarPropagandaCadastrados()
        {
            return dalPropaganda.BuscarPropagandaCadastrados();
        }

        public DTOPropaganda BuscarPropagandaID(int propagandaID)
        {
            return dalPropaganda.BuscarPropagandaID(propagandaID);
        }

        public DataTable BuscarPropagandaCadastradosSimples()
        {
            List<DTOPropaganda> Busca =  dalPropaganda.BuscarPropagandaCadastrados();
            if (Busca.Count > 0)
            {
                DataTable Resposta = new DataTable();
                Resposta.Columns.Add("ID");
                Resposta.Columns.Add("Nome");
                Resposta.Columns.Add("Indice");

                for (int i = 0; i < Busca.Count; i++)
                    Resposta.Rows.Add(Busca[i].PropagandaID, Busca[i].Nome, Busca[i].Indice);
                return Resposta;
            }
            else
                return new DataTable();
        }


        private byte[] CarregarArquivoImagem(string filename, int ImagemTamanhoMaximo)
        {
            try
            {
                byte[] imagemBytes = null;
                string caminhoCompletoImagem = filename;
                FileStream fs = new FileStream(caminhoCompletoImagem, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);
                imagemBytes = br.ReadBytes(ImagemTamanhoMaximo);
                fs.Close();
                return imagemBytes;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public byte[] imageToByteArray(System.Drawing.Image imageIn)
        {

            MemoryStream ms = new MemoryStream();

            imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

            return ms.ToArray();

        }

    }
}
